.Dd November 19, 2014
.Dt FCEUX 6
.Os
.Sh NAME
.Nm fceux
.Nd emulator for the Nintendo Entertainment System and Famicom
.Sh SYNOPSIS
.Nm fceux
.Op Ar options
.Ar file
.Sh DESCRIPTION
.Nm
is an emulator for the original (8\(hybit) Nintendo Entertainment System (NES).
It has a robust color palette rendering engine that is fully customizable,
along with excellent sound and joystick support, and even supports movie
recording and playback.
.Sh OPTIONS
.Ss Misc. Options
.Bl -tag -width Ds
.It Fl -no-config Cm 0 | 1
Use default config file and do not save to it, when enabled.
.It Fl g Cm 0 | 1 , Fl -gamegenie Cm 0 | 1
Enable or disable emulated Game Genie.
.It Fl -nogui Cm 0 | 1
Enable or disable the GTK graphical interface.
.It Fl -loadlua Ar file
Loads Lua script from filename
.Ar file .
.El
.Ss Emulation Options
.Bl -tag -width Ds
.It Fl -pal Cm 0 | 1
Enable or disable PAL mode.
.El
.Ss Input Options
.Bl -tag -width Ds
.It Fl i Ar dev , Fl -inputcfg Ar dev
Configures input device
.Ar dev
on startup.
Devices include:
.Cm gamepad powerpad hypershot quizking
.It Fl -input1 Ar dev
.It Fl -input2 Ar dev
Set which input device to emulate for input 1 or 2.
Devices include:
.Cm gamepad zapper powerpad.0 powerpad.1 arkanoid
.It Fl -input3 Ar dev
.It Fl -input4 Ar dev
Set the Famicom expansion device to emulate for input 3 or 4.
Devices include:
.Cm quizking hypershot mahjong toprider ftrainer familykeyboard oekakids
.Cm arkanoid shadow bworld 4player
.It Fl -inputdisplay Cm 0 | 1
Enable or disable input display.
.It Fl -fourscore Cm 0 | 1
Enable or disable Fourscore emulation.
.El
.Ss Graphics Options
.Bl -tag -width Ds
.It Fl -newppu Cm 0 | 1
Enable or disable the new PPU core.
.Pq Sy Warning : No May break savestates
.It Fl -frameskip Ar frames
Set number of frames to skip per emulated frame.
.It Fl -clipsides Cm 0 | 1
Enable or disable clipping of the leftmost and rightmost 8 columns of the video
output.
.It Fl -slstart Ar scanline
Set the first scanline to be rendered.
.It Fl -slend Ar scanline
Set the last scanline to be rendered.
.It Fl -nospritelim Cm 0 | 1
When set to 0, this disables the normal 8 sprites per scanline limitation.
When set to 1, this enables the normal 8 sprites per scanline limitation.
.Sy Note : No Yes, this option is Sq backwards .
.It Fl x Ar xres , Fl -xres Ar xres
Set horizontal resolution for full screen mode.
.It Fl y Ar yres , Fl -yres Ar yres
Set vertical resolution for full screen mode.
.It Fl -doublebuf Cm 0 | 1
Enable or disable double buffering.
.It Fl -autoscale Cm 0 | 1
Enable or disable autoscaling in fullscreen.
.It Fl -keepratio Cm 0 | 1
Keep native NES aspect ratio when autoscaling.
.It Fl -xscale Ar val
.It Fl -yscale Ar val
Multiply width/height by
.Ar val .
.Ar val
can be a real number greater than 0 with OpenGL output;
otherwise, it must be an integer greater than 0.
.It Fl -xstretch Cm 0 | 1
.It Fl -ystretch Cm 0 | 1
Stretch to fill surface on x/y axis (OpenGL only).
.It Fl b Cm 8 | 16 | 24 | 32 , Fl -bpp Cm 8 | 16 | 24 | 32
Set bits per pixel.
.It Fl -opengl Cm 0 | 1
Enable or disable OpenGL support.
.It Fl -openglip Cm 0 | 1
Enable or disable OpenGL linear interpolation.
.It Fl f Cm 0 | 1 , Fl -fullscreen Cm 0 | 1
Enable or disable full\(hyscreen mode.
.It Fl -noframe Cm 0 | 1
Hide title bar and window decorations.
.It Fl -special Ar filter
Use special video scaling filters.
.Ar filter
is a number from 1\(en5:
.Bl -tag -compact -width a
.It 1
hq2x
.It 2
Scale2x
.It 3
NTSC
.It 4
hq3x
.It 5
Scale3x
.El
.It Fl p Ar file , Fl -palette Ar file
Use the custom palette in
.Ar file .
.It Fl -ntsccolor Cm 0 | 1
Enable or disable NTSC NES colors.
.It Fl -tint Ar val
Set the NTSC tint.
.It Fl -hue Ar val
Set the NTSC hue.
.El
.Ss Sound Options
.Bl -tag -width Ds
.It Fl s Cm 0 | 1 , Fl -sound Cm 0 | 1
Enable or disable sound.
.It Fl -soundrate Ar rate
Set the sound playback sample rate (0 = off?).
.It Fl -soundq Cm 0 | 1 | 2
Set sound quality.
.Bl -tag -width a -compact
.It 0
Low
.It 1
High
.It 2
Very high
.El
.It Fl -soundbufsize Ar n
Set sound buffer size to
.Ar n
milliseconds.
.It Fl -volume Ar val
Set sound volume to the given value,
which can range from 0 to a maximum of 256.
.It Fl -trianglevol Ar val
Set sound volume of the triangle wave to the given value,
which can range from 0 to a maximum of 256.
.It Fl -square1vol Ar val
Set sound volume of square wave 1 to the given value,
which can range from 0 to a maximum of 256.
.It Fl -square2vol Ar val
Set sound volume of square wave 2 to the given value,
which can range from 0 to a maximum of 256.
.It Fl -noisevol Ar val
Set sound volume of the noise generator to the given value,
which can range from 0 to a maximum of 256.
.It Fl -lowpass Cm 0 | 1
Enable or disable lowpass filtering of the sound.
.It Fl -soundrecord Ar file
Record sound to
.Ar file .
.El
.Ss Movie Options
.Bl -tag -width Ds
.It Fl -playmov Ar file
Play back a recorded FCM/FM2 movie from
.Ar file .
.It Fl -pauseframe Ar frame
Pause movie playback at frame
.Ar frame .
.It Fl -moviemsg Cm 0 | 1
Enable or disable movie messages.
.It Fl -fcmconvert Ar file
Convert fcm movie file
.Ar file
to fm2.
.It Fl -ripsubs Ar file
Convert movie\(cqs subtitles to SubRip (srt) subtitles.
.It Fl -subtitles Cm 0 | 1
Enable or disable subtitle display.
.El
.Ss Networking Options
.Bl -tag -width Ds
.It Fl n Ar server , Fl -net Ar server
Connect to
.Ar server
for TCP/IP network play.
.It Fl -port Ar port
Use TCP/IP port
.Ar port
for network play.
.It Fl u Ar nick , Fl -user Ar nick
Set the nickname to use in network play.
.It Fl w Ar pass , Fl -pass Ar pass
Set password to use for connecting to the server.
.It Fl k Ar netkey , Fl -netkey Ar netkey
Use the string
.Ar netkey
to create a unique session for the game loaded.
.It Fl -players Ar num
Set the number of local players.
.It Fl -rp2mic Cm 0 | 1
If enabled, replace Port 2 Start with microphone (Famicom).
.It Fl -videolog Ar c
Calls mencoder to grab the video and audio streams to encode them.
Check the documentation for more on this.
.It Fl -mute Cm 0 | 1
Mutes
.Nm
while still passing the audio stream to mencoder.
.El
.Sh KEYBOARD COMMANDS
.Nm
has a number of commands available within the emulator.
It also includes default keyboard bindings when emulating game pads
or power pads.
.Ss Gamepad Keyboard Bindings
.TS
center box;
cb | cb, cb | c.
NES Gamepad	Keyboard
=
\(ua	Keypad Up
\(da	Keypad Down
\(<-	Keypad Left
\(->	Keypad Right
A	F
B	D
Select	S
Start	Enter
.TE
.Ss Other Commands
.Bl -tag -width "Aq Alt+Enter"
.It Aq Cm Alt Ns + Ns Cm Enter
Toggle full\(hyscreen mode.
.It Aq Cm F1
Cheat menu (command\(hyline only).
.It Aq Cm F2
Toggle savestate binding to movies.
.It Aq Cm F3
Load Lua script.
.It Aq Cm F4
Toggles background rendering.
.It Aq Cm F5
Save game state into current slot (set using number keys).
.It Aq Cm F7
Restore game state from current slot (set using number keys).
.It Aq Cm F10
Toggle movie subtitles.
.It Aq Cm F11
Reset NES.
.It Aq Cm F12
Save screen snapshot.
.It Aq Cm Shift Ns + Ns Cm F5
Begin recording video.
.It Aq Cm Shift Ns + Ns Cm F7
Load recorded video.
.It Cm 0 Ns \(en Ns Cm 9
Select the numbered save state slot.
.It Ao Cm Page Up Ac / Aq Cm Page Down
Select next/previous state.
.It Cm -
Decrease emulation speed.
.It Cm =
Increase emulation speed.
.It Aq Cm Tab
Hold for turbo emulation speed.
.It Aq Cm Pause
Pause emulation.
.It Cm \e
Advance a single frame.
.It Cm \&.
Toggle movie frame counter.
.It Cm \&,
Toggle input display.
.It Cm q
Toggle movie read\(hyonly.
.It Cm \(aq
Advance a single frame.
.It Cm /
Lag counter display.
.It Aq Cm Delete
Frame advance lag skip display.
.It Aq Cm Esc
Quit
.Nm .
.El
.Ss VS Unisystem Commands
.Bl -tag -width "Aq F8"
.It Aq Cm F8
Insert coin.
.It Aq Cm F6
Show/hide dip switches.
.It Cm 1 Ns \(en Ns Cm 8
Toggle dip switches (when dip switches are shown).
.El
.Ss Famicom Disk System Commands
.Bl -tag -width "Aq F6"
.It Aq Cm F6
Select disk and disk side.
.It Aq Cm F8
Eject or insert disk.
.El
.Sh SEE ALSO
.Xr fceux-net-server 6
.Pp
.Lk http://fceux.com/ "The FCEUX homepage" .
.Sh AUTHORS
.An -nosplit
This manual page was written by
.An Joe Nahmias Aq Mt joe@nahmias.net ,
.An Lukas Sabota Aq Mt ltsmooth42@gmail.com
and
.An Alexander Toresson Aq Mt alexander.toresson@gmail.com
for the Debian GNU/Linux system (but may be used by others).
